package org.leetcode.middle.leetcode11;

public class Solution
{

    public int maxArea2(int[] height){

        int left = 0;
        int right = height.length-1;

        int res = Integer.MIN_VALUE;

        while (left<right){
          int area =(right-left)*Math.min(height[left],height[right]);

          res = Math.max(area,res);

             if (height[left]>height[right]){
                 right--;
             }else {
                 left++;
             }
        }

        return res;
    }

    /**
     * 如果我们移动数字较大的那个指针，那么"两个指针指向的数字中较小值"不会增加，后者"指针之间的距离"会减小，那么乘积会减小。
     * 因此，我们移动数字较大的那个指针是不合理的。因此，我们移动 数字较小的那个指针。
     */
    public int maxArea(int[] height) {

        int left =0,right =height.length-1;

        int ans = 0;

        while (left<right)
        {
            int area = Math.min(height[left],height[right])*(right-left);

            ans=Math.max(area,ans);

            if (height[left]<=height[right])
            {
                left++;
            }else {
                right--;
            }
        }

        return ans;
    }
}
